// node的内置模块；fs//文件系统模块  分为同步和异步两种
let fs=require('fs');
// console.log(fs);//fs模块里的方法

//操作文件的方法：

//1.读取文件:File
//同步:俩参数，'文件路径'，'编码格式',有返回值
console.log( fs.readFileSync('./demo.txt','utf-8'));

//异步:三个参数，'文件路径'，'编码格式'，回调函数，没有返回值

fs.readFile('./demo.txt','utf-8',(err,data)=>{//err是报错信息，data是读取结果
    if(err) throw err;//throw抛出自定义错误
    console.log(err,data);
});


//2.写入文件：write,特点：会默认覆盖之前的内容，当路径不存在，会自动创建文件
//同步：'文件路径'，'内容'，没有返回值，打印不到
console.log(fs.writeFileSync('./demo1.txt','山高皇帝远')); 

// 异步：'文件路径'，'内容'，回调函数，没有返回值
 fs.writeFile('./demo.txt','666',(err)=>{
        if(err) throw err;
        console.log('文件写入成功');
})


//3.追加文件：append,没有返回值
 fs.appendFile('./demo.txt','777\r',err=>{//内容加\r或\n换行
     if(err) throw err;//抛出报错信息
     console.log('追加成功');
 })


//4.删除文件:unlink，'文件路径'，回调函数,没有返回值
fs.unlink('./demo.txt',err=>{
    if(err) throw err;
    console.log('删除成功.');
})


//5.重命名文件:rename，'文件名'，'新文件名',回调函数,没有返回值
fs.rename('./demo.txt','./demo2.txt',err=>{
    if(err) throw err;
    console.log('重命名成功');
})


//6.拷贝文件:copyFile，'要拷贝文件路径'，'新文件路径'
fs.copyFile('./demo.txt','./demo1.txt',err=>{
    if(err) throw err;
    console.log('拷贝成功。');
})